#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode PyQt5 tutorial
第一个示例，相当于hello world
In this example, we create a simple
window in PyQt5.

author: Jan Bodnar
website: zetcode.com
Last edited: August 2017
"""

import sys
#这里引入了PyQt5.QtWidgets模块，这个模块包含了基本的组件。
from PyQt5.QtWidgets import QApplication, QWidget

if __name__ == '__main__':
    #每个PyQt5应用都必须创建一个应用对象。sys.argv是一组命令行参数的列表。
    # Python可以在shell里运行，这个参数提供对脚本控制的功能。
    app = QApplication(sys.argv)

    #QWidge控件是一个用户界面的基本控件，它提供了基本的应用构造器。
    # 默认情况下，构造器是没有父级的，没有父级的构造器被称为窗口（window）。
    w = QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('我的第一个窗口')
    w.show()


    #最后，我们进入了应用的主循环中，事件处理器这个时候开始工作。
    # 主循环从窗口上接收事件，并把事件传入到派发到应用控件里。
    # 当调用exit()方法或直接销毁主控件时，主循环就会结束。
    # sys.exit()方法能确保主循环安全退出。外部环境能通知主控件怎么结束。

    #exec_()之所以有个下划线，是因为exec是一个Python的关键字。
    sys.exit(app.exec_())